package treinamentoClassificacao.cln.cdp;

import gerenciaDados.cln.cgt.PI.DB;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;

public class Classificador {

	ClassificadorTipo classificadorTipo = null;
	ArrayList<ClassificadorPotencia> lstClassificadoresPotencia = null;
	
	private static String formatarData(String s) {
		return s.substring(8, 10) + "/" + s.substring(5, 7) + "/" + s.substring(0, 4) + " " + s.substring(11, 13) + ":" + s.substring(14, 16) + ":" + s.substring(17, 19);
	}
	
	public Classificador() {
		ArrayList<String> lstTiposLampada = null;
		try {
//			classificadorTipo = new ClassificadorTipo("clTipo.dat.");
			Connection con = DB.conecta();
			lstTiposLampada = DB.getAllTipoLampada(con);
			System.out.print(lstTiposLampada);
			int nTiposLampada = lstTiposLampada.size();
			
			nTiposLampada = 4;
			for(int i=0; i<nTiposLampada; i++) {
//				lstClassificadoresPotencia.add(new ClassificadorPotencia("clPotencia" +lstTiposLampada.get(i)+ ".dat"));
			}
			
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		} catch (ClassNotFoundException e) {
//			e.printStackTrace();
		}
	}
	
	public int[] classificarDados(double[] dados) throws Exception {
		int indiceTipo = classificadorTipo.classificarDados(dados);
		int indicePotencia = lstClassificadoresPotencia.get(indiceTipo).classificarInstancia(dados);
		
		int[] classe = {indiceTipo, indicePotencia};
		return classe;
	}
	
	static public void main(String[] args) {
		Classificador c = new Classificador();
	}

	public static String getDataUltimaClassificacao() {
		Connection con = DB.conecta();
		String dtUltimaOcorrencia = null;
		Timestamp ultimaOcorrencia = null;
		
		try {
			Statement stt = con.createStatement();
			ResultSet rs = stt.executeQuery("select data from logclassificacao order by data desc");
			
			if(rs.next()) {
				ultimaOcorrencia = rs.getTimestamp("data");
				dtUltimaOcorrencia = formatarData(ultimaOcorrencia.toString());
			} else {
				dtUltimaOcorrencia = "Nunca";
			}
			
			stt.close();
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return dtUltimaOcorrencia;
	}
}
